Ревьюер | Проверено | Согласовано | Комментарий (замечания, предложения) |
|---|---|---|---|
Ревьюер | Проверено | Согласовано | Комментарий (замечания, предложения) |
| Неизвестный пользователь (yuliya.semina) | |||
| |||
| Неизвестный пользователь (asvoronin@it-one.ru) |
GIT: https://git.gosuslugi.local/ervu/source/ervu-validate-recruits
Назначение
Сервис форматно-логического контроля(ФЛК) ervu-validate-recruits предназначен для проверки файла в формате csv, полученного из личного кабинета реестра повесток для юридических лиц(ЛК РП ЮЛ).
Описание
Сервис выполняет следующие функции:
- Подписывается на топик ervu.lkrp.download.request, который заполняется ЛК РП с информацией об успешной проверке файлов на вирусы.
- Скачивает файл из хранилища S3.
- Выполняет первичную проверку файла на соответствие формату и структуре, ориентируясь на шаблоны, хранящиеся в S3.
- Возвращает ответ в топик ervu.lkrp.download.response с одним из статусов: Код 04, 05, 09, 10
- Проводит вторичную проверку файла, снова ориентируясь на шаблоны из S3.
- Отправляет ответ в топик ervu.lkrp.validate.response в формате JSON, содержащий информацию о валидации файла, включая данные о корректно и/или некорректно заполненных строках.
Валидация файла
Первичная проверка:
- Загруженный файл должен быть в формате csv с кодировкой UTF-8.
- Разделительный знак точка с запятой ";"
- Файл должен соответствовать выбранному приложению(шаблону) для заполнения(расположение, название и количество столбцов).
- Сравнение шаблона с файлом пользователя осуществляется до первого пустого столбца в шаблоне.
- Шаблон на стороне сервера в формате xlsx.
Вторичная проверка:
- Проверка строк на наличие пустых значений во всей строке. Тогда валидация файла должна быть сделана до этой строки, не содержащей в себе полезной нагрузки.
- Проверка на заполненность обязательных полей: Наименование военного комиссариата, Фамилия, Имя, Дата рождения, Пол, Серия паспорта, Номер паспорта, Дата выдачи паспорта, СНИЛС. Минимум одно из трех полей должно быть заполнено: Адрес регистрации по месту жительства, Адрес регистрации по месту пребывания, Адрес фактического проживания (Кроме 2 приложения). А также:
- Для приложение 9: Работник/Учащийся, Принят/зачислен/уволен/отчислен.
А также:- Сценарий 1: если поля Работник/Учащийся заполнено значением из справочника Работник и Принят/зачислен/уволен/отчислен = Принят. Тогда обязательные поля: Дата приема на работу/поступления в образовательную организацию, Должность/наименование профессии/специальности/направления подготовки, Номер трудового договора, Дата трудового договора.
- Сценарий 2: если поле Работник/Учащийся = Учащийся и Принят/зачислен/уволен/отчислен = Зачислен. Обязательные поля: Дата приема на работу/поступления в образовательную организацию, Должность/наименование профессии/специальности/направления подготовки, Номер приказа о приеме/зачислении/увольнении/отчислении, Дата приказа о приеме/зачислении/увольнении/отчислении.
- Сценарий 3: если поле Работник/Учащийся = Работник и Принят/зачислен/уволен/отчислен = Уволен. Обязательные поля: Дата увольнения с работы/отчисления из образовательной организации, Номер приказа о приеме/зачислении/увольнении/отчислении, Дата приказа о приеме/зачислении/увольнении/отчислении.
- Сценарий 4: если поле Работник/Учащийся = Учащийся и Принят/зачислен/уволен/отчислен = Отчислен. Обязательные поля: Дата увольнения с работы/отчисления из образовательной организации, Номер приказа о приеме/зачислении/увольнении/отчислении, Дата приказа о приеме/зачислении/увольнении/отчислении.
- Сравнение дат:
- Дата приема на работу/поступления в образовательную организацию должна быть меньше или равна полям Дата увольнения с работы/отчисления из образовательной организации, Дата приказа о приеме/зачислении/увольнении/отчислении, Дата трудового договора. Допускается, когда Дата увольнения… пустое.
- Дата увольнения с работы/отчисления из образовательной организации должна быть меньше или равна полям Дата приказа о приеме/зачислении/увольнении/отчислении
При заполнение Работник/Учащийся в поле Принят/зачислен/уволен/отчислен должен быть только один из 2 вариантов:
Работник: Принят или Уволен.
Учащийся: Зачислен или Отчислен
Для приложение 10: Занимаемая должность (курс/класс), Номер телефона.
Для приложение 11: Занимаемая должность (курс/класс), Номер телефона.
Для приложение 12: Образование, Семейное положение, Должность (профессия).
Для приложение 2: Вид изменений, Содержание изменений.
- Для приложение 9: Работник/Учащийся, Принят/зачислен/уволен/отчислен.
- Формат и валидность данных:
- ФИО: не содержит латиницу, цифры и спец. знаки, кроме "-" и " ".
- Формат паспортных данных: Серия и номер паспорта должны состоять из 4 и 6 цифр (формат: "XXXX" "XXXXXX").
- Формат СНИЛС: должен состоять из 11 цифр (формат: "XXX-XXX-XXX XX").
- Формат даты: все даты (например, "Дата рождения", "Дата приема на работу/поступления в образовательную организацию", "Дата приказа", "Дата трудового договора") должны быть из цифр в формате "DD.MM.YYYY". Проверка на корректность формата и существование даты (например, нет ли даты 30 февраля).
- Адреса, должности/профессии/специальности/направления подготовки, наименование образовательного учреждения и т.п.: не содержат латиницу и знаки "!", "?", "@", "%", "$" и т.п. (используются: дефис "-", скобки "()", апостроф "'", косая черта "/", амперсанд "&", кавычки """, запятая ",", точка ".", плюс "+")
- Проверка соответствия с листом "Справочник". Название столбцов должно совпадать и их ячейки должны быть заполнены вариантами из Справочника.
- Логические проверки:
- Дата приема… должна быть раньше Даты приказа:
В шаблоне Прил_9_Приемзачисление_увольнениеотчисление: "Дата приема на работу/поступления в образовательную организацию" <= "Дата приказа о приеме/зачислении/увольнении/отчислении" - Если есть Дата увольнения..., она должна быть позже Дата приема…:
В шаблоне Прил_9_Приемзачисление_увольнениеотчисление: "Дата приема на работу/поступления в образовательную организацию" <= "Дата увольнения с работы/отчисления из образовательной организации"
- Дата приема… должна быть раньше Даты приказа:
- Проверка на скрытые символы. На пример: NBSP символ неразрывного пробела в тексте.
Статусы файла:
Код | Статус | Описание |
|---|---|---|
Код | Статус | Описание |
| 1 | Загрузка. ЛК РП | Файл принят до проверки на вирусы. |
| 2 | Проверка не пройдена ЛК РП | Проверка на вирусы не пройдена |
| 3 | Направлено в ЕРВУ ЛК РП | Проверка на вирусы пройдена успешно, файл направлен в очередь |
| 4 | Получен ЕРВУ | Файл был принят в обработку |
| 5 | Отклонено ЕРВУ | Структура файла не соответствует шаблону |
| 6 | Принято частично ЕРВУ | Часть записей не прошла проверку ФЛК |
| 7 | Принято ЕРВУ | Все записи успешно прошли проверку ФЛК |
| 8 | Ошибка валидации | Ошибка при прохождении валидации |
| 9 | Не получен ЕРВУ | Не удалось получить файл |
| 10 | Отклонен ЕРВУ | Кодировка csv отличается от стандарта UTF-8 |
| 11 | Невозможно проверить файл ЛК РП | Невозможно проверить файл по причине недоступности или ошибки в работе антивируса |
| 12 | Некорректная ЭП | Неуспешная проверка ЭП |
| 13 | Некорректная МЧД | Неуспешная проверка МЧД |
Коды ошибок
| Код ошибки | Описание | Действия |
| SUC01 | Пройден ФЛК | Возвращаем номера строк |
| ERR02 | Обязательные поля не заполнены | Возвращаем номера строк |
| ERR03 | Дублирующиися записи | Возвращаем номера строк |
| ERR04 | Дублирование паспорта или СНИЛС | Возвращаем номера строк |
| ERR05 | Неверный формат даты | Возвращаем номера строк |
| ERR06 | Неверно заполнены паспортные данные | Возвращаем номера строк |
| ERR07 | Неверно заполнен СНИЛС | Возвращаем номера строк |
| ERR08 | Значение не соответствует справочнику | Возвращаем номера строк |
| ERR09 | Несоответствие дат | Возвращаем номера строк |
| ERR10 | Неверное количество заполненных колонок | Возвращаем номера строк |
| ERR11 | Содержит латиницу, цифры или недопустимые спец.символы | Возвращаем номера строк |
| ERR12 | Содержание скрытых символов | Возвращаем номера строк |
| ERR13 | Несоответствие взаимосвязанных значений | Возвращаем номера строк |
| ERR14 | Дата не может превышать текущую | Возвращаем номера строк |
Отображение на фронте
ЛК РП
На фронте ЛК РП имеется возможность загрузить 5 видов шаблонов в формате CSV.
Загрузка файла
Сведения направлены
Топики Kafka
Consumer
ervu.lkrp.download.request
Ответ от ЛК РП ЮЛ о успешном проверенном файле на вирусы
Producer
ervu.lkrp.download.response
Ответ после первичной проверки с одним из статусов (Код 04, 05, 08, 09). Данный топик слушает сервис ervu-organization-registry команда РП и ЛК РП(Микорд), чтобы обновить статус файла.
ervu.lkrp.validate.response
Ответ после валидации, содержащий информацию о корректно и/или некорректно заполненных строках в файле. Данный топик слушает сервис ervu-organization-registry, чтобы начать парсинг файла.
S3 корзины
Сервис имеет доступ к следующим корзинам
Пользователь | Корзина | Права на UAT |
|---|---|---|
Пользователь | Корзина | Права на UAT |
| ervu-validate-recruits | mz-attachment | read |
| ervu-validate-recruits | mz-mock-adapter | read |
| ervu-validate-recruits | validate-template | read, write |
| ervu-validate-recruits | lkrp-av | read |
validate-template — корзина, используемая исключительно нашим сервисом, в которой хранятся шаблоны(формы) для сверки с загружаемыми пользователями файлами.
lkrp-av — корзина, создаваемая на стороне ЛК РП и используемая в нескольких сервисах. В этой корзине хранятся файлы, которые прошли проверку антивирусом со стороны ЛК РП. Эти файлы необходимо провалидировать через сервис ervu-validate-recruits и распарсить сервисом ervu-organization-registry.
Схема взаимодействия с сервисами
Файлы по сервису
- Формы(Шаблоны) и приложения
- Инструкция_по_сохранению_их_CSV_v_1_0_4.docx
- Файлы_для_теста_v4 от 02.10.2024






Добавить комментарий